#include <linux/module.h> 
#include <linux/init.h> 
#include <linux/platform_device.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>


MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("ratherdog");

static int arg1,arg2;
static int arg[44];
static int Argv_Num;

static int hello_entry(void);
static void hello_exit(void);

module_init(hello_entry);//Set entry function
module_exit(hello_exit);//Set exit function

/*
arg1 : 参数名称,用户设置的参数被存储进arg1中
arg2 : 元素类型
arg3 : 访问权限
*/
module_param(arg1, int, 0444);  
module_param(arg2, int, 0444); 
/*
arg1 : 参数名称
arg2 : 元素类型
arg3 : 用户设置的数组成员个数! 即用户设置了几个参数 
arg4 : 参数的访问权限
*/
module_param_array(arg, int, &Argv_Num, 0444);


static int hello_entry(void)
{
	int i;
	//打印参数
	printk(KERN_EMERG "arg1 is %d\n",arg1);
	printk(KERN_EMERG "arg2 is %d\n",arg2);
	//打印数组参数
	printk(KERN_EMERG "Argv_Num is %d\n",Argv_Num);
	for(i = 0;i<Argv_Num;i++)
	{
		printk(KERN_EMERG "arg[%d] is %d\n",i,arg[i]);
	}
	return 0;
}
static void hello_exit(void)
{
	printk(KERN_EMERG "\nThe process exit,See you again!\n");
}

